import { Entity, CreateDateColumn, UpdateDateColumn, VersionColumn } from 'typeorm';

/**
 * @description 通用实体基类，包含创建时间、更新时间和版本字段。
 */
@Entity()
export class Others_TimeVersitionEntity_Base {
  /**
   * @description 创建时间列，在实体插入时自动设置为当前时间。
   * @type {Date}
   */
  @CreateDateColumn({
    type: 'datetime',
    precision: 0,
    default: () => 'CURRENT_TIMESTAMP(0)',
    onUpdate: 'CURRENT_TIMESTAMP(0)',
  })
  createTime: Date;

  /**
   * @description 更新时间列，在实体更新时自动设置为当前时间。
   * @type {Date}
   */
  @UpdateDateColumn({
    type: 'datetime',
    precision: 0,
    default: () => 'CURRENT_TIMESTAMP(0)',
    onUpdate: 'CURRENT_TIMESTAMP(0)',
  })
  updataTime: Date;

  /**
   * @description 版本列，用于控制并发更新。
   * @type {number}
   */
  @VersionColumn()
  version: number;
}
